#include<bits/stdc++.h>
using namespace std;
// #define int long long
int n,m,q;
int fa[500005];
int find(int u){
	if(fa[u]==u)return u;
	return fa[u]=find(fa[u]);
}
int sum[500005];
signed main(){
	freopen("destory.in","r",stdin);
	freopen("destory.out","w",stdout);
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	cin>>n>>m>>q;
	for(int i=1;i<=n;i++)fa[i]=i;
	for(int i=1;i<=m;i++){
		int u,v;
		cin>>u>>v;
		u=find(u);v=find(v);
		if(u==v)continue;
		fa[u]=v;
	}
	for(int i=1;i<=n;i++)fa[i]=find(i);
	// for(int i=1;i<=n;i++)cout<<fa[i]<<" ";
	// cout<<"\n";
	while(q--){
		int l,r;
		int cnt1=0,cnt2=0;
		cin>>l>>r;
		for(int i=l;i<=r;i++){
			if(sum[fa[i]]==0)cnt1++;
			sum[fa[i]]++;
		}
		for(int i=l;i<=r;i++)sum[fa[i]]=0;
		int L=l;
		int ans=0x3f3f3f3f;
		for(int i=l;i<=r;i++){
			if(sum[fa[i]]==0)cnt2++;
			sum[fa[i]]++;
			while(cnt2>=cnt1){
				sum[fa[L]]--;
				// if(cnt2<0)return 114514;
				if(sum[fa[L]]==0)cnt2--;
				L++;
			}
			if(L!=l){
				L--;if(sum[fa[L]]==0)cnt2++;
			sum[fa[L]]++;
			}
			
			if(cnt2==cnt1){
				ans=min(ans,i-L+1);
			}
		}
		for(int i=l;i<=r;i++)sum[fa[i]]=0;
		cout<<ans<<"\n";
	}
	return 0;
}